package com.qbw.app.request;

import com.http.okhttp.HttpTask;

import java.util.List;

/**
 * @author QBW
 * @date 2019/8/29
 */
public interface IVehicleRequest {

    HttpTask getVehicleList(HttpTask.CallBack callBack);

    HttpTask getEstimeteDistance(String vehicleCode, HttpTask.CallBack callBack);

    HttpTask getVoltage(String vehicleCode, HttpTask.CallBack callBack);

    HttpTask getCoolant(String vehicleCode, HttpTask.CallBack callBack);

    HttpTask getHomeStatus(String vehicleCode, HttpTask.CallBack callBack);

    HttpTask getProblemList(String vehicleCode, HttpTask.CallBack callBack);

    HttpTask getVehicleLocation(String vehicleCode, HttpTask.CallBack callBack);

    HttpTask getVehicleLastStroke(String vehicleCode, HttpTask.CallBack callBack);

    HttpTask getAlarmList(List<String> vehicleCodes,
                          List<String> alarmIdList,
                          int pageCount,
                          int pageSize,
                          HttpTask.CallBack callBack);

    HttpTask getHomeInfo(String vehicleCode, HttpTask.CallBack callBack);

    HttpTask getTravelGps(String travelCode, String adsorbent, HttpTask.CallBack callBack);

    HttpTask getTravelList(String vehicleCode,
                           long sTime,
                           long eTime,
                           int page,
                           int limit,
                           HttpTask.CallBack callBack);

    HttpTask getTravellChart(String vehicleCode,
                           long sTime,
                           long eTime,
                           HttpTask.CallBack callBack);


    HttpTask getTravelDetail(String travelCode, HttpTask.CallBack callBack);

    HttpTask searchVehicle(String vehicleCode, HttpTask.CallBack callBack);

    HttpTask getVehicleDetail(String vehicleCode, HttpTask.CallBack callBack);

    HttpTask addVehicle(String vin,
                        String vehicleNick,
                        String engineNo,
                        HttpTask.CallBack callBack);

    HttpTask getElectricAreaList(int page, int limit, HttpTask.CallBack callBack);

    HttpTask addElectricArea(double latitude,
                             double longitude,
                             double radius,
                             String fenceName,
                             int fenceState,
                             String triggerSet,
                             List<String> vehicleCodes,
                             HttpTask.CallBack callBack);

    HttpTask updateElectricArea(long fenceId,
                                double latitude,
                                double longitude,
                                double radius,
                                String fenceName,
                                int fenceState,
                                String triggerSet,
                                List<String> vehicleCodes,
                                HttpTask.CallBack callBack);

    HttpTask deleteElectricArea(long fenceId, HttpTask.CallBack callBack);

    HttpTask deleteElectricAreas(List<String> fenceIds, HttpTask.CallBack callBack);

    HttpTask getWarningConfig(String vehicleCode, HttpTask.CallBack callBack);

    HttpTask updateWarningConfig(String vehicleCode,
                                 List<String> alarmIdList,
                                 int appSwitch,
                                 HttpTask.CallBack callBack);

    HttpTask getVehicleDetailByVin(String vin, HttpTask.CallBack callBack);

    HttpTask getElectricAreaDetail(long fenceId, HttpTask.CallBack callBack);

    HttpTask deleteVehicle(String vehicleCode, HttpTask.CallBack callBack);

    HttpTask editVehicle(String vehicleCode,
                         String vehicleNumber,
                         String vehicleNick,
                         HttpTask.CallBack callBack);

    HttpTask getTravelAlarms(String travelCode, HttpTask.CallBack callBack);

    HttpTask getAlarmConfig(String vehicleCode, HttpTask.CallBack callBack);

    HttpTask markAllWarningRead(HttpTask.CallBack callBack);

    HttpTask addVehicleNm(String deviceCode,
                                 String devicePassword,
                                 HttpTask.CallBack callBack);

    HttpTask getHomeInfoNm(String vehicleCode, HttpTask.CallBack callBack);

    public HttpTask getLightDataNm(String vehicleCode, HttpTask.CallBack callBack);

    public HttpTask sendLightSwitchNm(String vehicleCode, int lightSwitch, HttpTask.CallBack callBack);

    public HttpTask sendLightDurationNm(String vehicleCode, int lightDuration, HttpTask.CallBack callBack);

    public HttpTask getTirePressureStateNm(String vehicleCode, HttpTask.CallBack callBack);

    public HttpTask getTirePressureDataNm(String vehicleCode, HttpTask.CallBack callBack);

    HttpTask fbindDevice(String vehicleCode, String deviceCode, String devicePassword, HttpTask.CallBack callBack);

}
